package com.itheima.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.bean.Dish;
import com.itheima.commons.R;
import com.itheima.dto.DishDto;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Tang
 * @date 2023/1/7
 */
public interface DishService extends IService<Dish> {
    /**
     * 新增菜品包含口味信息
     * @param dishDto
     */
    @Transactional  //开启事务的注解，前提启动类上要加上@EnableTransactionManagement 注解
    void addDishWithFlavor(DishDto dishDto);

    /**
     * 查询菜品基本信息以及口味信息
     * @param id
     * @return
     */
    DishDto getDishWithFlavor(Long id);

    /**
     * 更新菜品信息包括口味信息
     * @param dishDto
     */
    @Transactional
    void updateWithFlavor(DishDto dishDto);

    /**
     * 查询菜品列表包含口味信息
     * @param dish
     * @return
     */
    List<DishDto> listWithFlavors(Dish dish);

    /**
     * 删除菜品
     * @param ids
     */
    @Transactional  //开始事务接口
    void deleteWithFlavor(Long[] ids);

    /**
     * 批量停售 起售
     * @param status
     * @param ids
     * @return
     */
    R<String> sellStatus(Integer status, List<Long> ids);
}
